Crate wita

source · []
Expand description

A window library in Rust for Windows.

wita is a library that create a window and run an event loop. It is only for Windows.

Example

struct Application;

impl Application {
    fn new() -> Result<Self, wita::ApiError> {
        wita::Window::builder()
            .title("hello, world!")
            .build()?;
        Ok(Self)
    }
}

impl wita::EventHandler for Application {
    fn closed(&mut self, _: wita::event::Closed) {
        println!("closed");
    }
}

fn main() {
    wita::run(wita::RunType::Wait, Application::new).unwrap();
}

Event handling

You must implement EventHandler for the your defined object, and can handle events in the impl EventHandler. Next, pass the your defined object to run.

struct Foo {}

impl Foo {
    fn new() -> Result<Self, wita::ApiError> {
        wita::Window::builder().build()?;
        Ok(Self {})
    }
}

impl wita::EventHandler for Foo {
    // You define handlers.
    // For example, handle the event that closed the window.
    fn closed(&mut self, _: wita::event::Closed) {
        // write handling codes
    }
}

wita::run(wita::RunType::Wait, Foo::new).unwrap();

Drawing on the window

There are directly no any methods for drawing on a Window in wita. However, a Window provides the raw_handle that return a pointer which is HWND. You can create a drawing context by using the raw_handle such as DirectX, Vulkan, etc.

Modules

EventHandler trait and event parameter structures.

An IME composition string and a candidate list

raw_inputraw_input

Provides raw input data.

Structs

Represents an Win32 API error.

Represents the borderless window style.

The object to build a window into the parent window.

A virtual key and a scan code.

Logical coordinate.

Describes monitor info.

A mouse cursor position and pressed mouse buttons.

Physical coordinate.

A generic position

A keyboard scan code

Screen coordinate.

A generic size

Represents a window.

The object to build a window.

Represents a window style.

Enums

Describes a mouse cursor icon.

Describes a icon.

Describes the state of a keyboard key and a mouse button.

Describes mouse buttons.

Describes a mouse wheel axis.

Describes event loop types.

Describes keyboard key names.

Constants

The value is an unit in logical coordinates.

The distance when the mouse wheel rotated expressed in multiples or factors of this value.

Traits

Trait that must implements for handling events.

A window style and the borderless window style.

Converts to a logical position.

Converts to a logical size.

Converts to a physical position.

Converts to a physical size.

Functions

Get the current key state;

Return monitors info.

Get current key states.

A screen position to a monitor.

Run the event loop.

Type Definitions

A position in logical coordinate.

A size in logical coordinate.

A position in physical coordinate.

A size in physical coordinate.

A position in screen coordinate.